﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Collections.Generic;
using Model;

namespace Control
{
    /// <summary>
    /// RioCMS CRUD para de Grupo de Usuários
    /// </summary>
    [WebService(
        Name = "GruposServices",
        Description = "RioCMS CRUD Grupos de Usuarios",
        Namespace = "RioCMSControl"
    )]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class GruposServices : System.Web.Services.WebService
    {
        private MGGrupos mg = new MGGrupos();

        [WebMethod(Description = "Retorna uma lista com todos os grupos de usuários")]
        public List<GrupoDeUsuario> listar()
        {
            if (!this.mg.autenticar())
                return null;
            else
                return this.mg.listar();
        }
		[WebMethod(Description = "Retorna um grupo de usuários")]
		public GrupoDeUsuario get(uint id)
		{
			if (!this.mg.autenticar())
				return null;
			else
				return this.mg.get(id);
		}
		[WebMethod(Description = "Adiciona um novo grupo de usuários")]
        public bool adicionar(String nome, String descricao)
        {
            if (!this.mg.autenticar())
            {
                return false;
            }
            else
            {
                return this.mg.adicionar(nome, descricao);
            }
        }
		[WebMethod(Description = "Altera um grupo de usuários")]
		public bool editar(uint id, String nome, String descricao) 
		{
			if (!this.mg.autenticar()) {
				return false;
			} else {
				return this.mg.atualizar(id, nome, descricao);
			}
		}
		[WebMethod(Description = "Cria uma copia de um grupo de usuários")]
		public bool copiar(uint id) {
			if (!this.mg.autenticar()) {
				return false;
			} else {
				return this.mg.duplicar(id);
			}
		}
        [WebMethod(Description = "Remove um Grupo de Usuarios")]
        public bool remover(uint id)
        {
            if (!this.mg.autenticar())
            {
                return false;
            }
            else
            {
                return this.mg.remover(id);
            }
        }
    }
}
